home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / ASTRONOM / 0880.ZIP / PRINTER.BAS < prev    next >
BASIC Source File  |  1980-01-01  |  10KB  |  86 lines

  1. 30150 IWH=3012:IF ERR=68 THEN CLS:LOCATE 10,12:COLOR IGR:PRINT"No printer?":LOCATE 13,12:COLOR IYL:PRINT"Press ESC to return":LOCATE 15,12:PRINT"to the menu.":RESUME 30200
  2. 30160 IF ERR<>24 AND ERR<>25 AND ERR<>27 THEN 9000 ELSE CLS:LOCATE 4,3:COLOR ILR:PRINT"Something is wrong with the printer.":LOCATE 7,10:COLOR IBR:PRINT"Please be sure that":LOCATE 9,10:PRINT"1. There is paper in":LOCATE 10,13:PRINT"the printer."
  3. 30170 LOCATE 12,10:PRINT"2. The printer is on.":LOCATE 16,6:PRINT"Press":LOCATE 18,6:COLOR IYL:PRINT"ENTER";:COLOR IBR:PRINT" to try the printer again,":LOCATE 20,6:PRINT"-or-":LOCATE 22,6:COLOR IYL:PRINT"ESC ";:COLOR IBR:PRINT"to return to the menu."
  4. 30180 RESUME 30200
  5. 30200 A$=INKEY$:IF A$=""THEN 30200 ELSE IF A$=CHR$(27) THEN 4000 ELSE IF A$=CHR$(13) THEN 30210 ELSE GOTO 30200
  6. 30210 ON ERROR GOTO 30150:GOSUB 30818:LMAR=161*UL*ULY-240:LPRINT CHR$(27)"@":LPRINT STRING$(80,45):LPRINT TAB(3)"SKY MAP":LPRINT:LPRINT TAB(3) FAP1$ CHR$(27)"S"CHR$(0)"0"CHR$(27)"H" FAP2$", "FOP1$ CHR$(27)"S"CHR$(0)"0"CHR$(27)"H"FOP2$ TAB(3)
  7. 30220 LPRINT FD$", "FTI$" "FCIT$" time.":LPRINT STRING$(80,45):LPRINT CHR$(27)"A"CHR$(8):GOSUB 30818
  8. 30230 GOSUB 30010:LOCATE 1,1:PRINT"Please wait...":LOCATE 3:PRINT"Printing":PRINT"the sky":PRINT"map":PRINT"takes":PRINT"a":PRINT"while.":LOCATE 19:PRINT"Press":PRINT"ESC":PRINT"to stop":PRINT"printing":PRINT"and return"
  9. 30232 PRINT"to the inter-";:LOCATE 25,1:PRINT"active screen.";:LOCATE 1:GOSUB 30818:IF ICR=1 THEN RETURN
  10. 30245 XMI=UL*ULY*50.5-LMAR+.5+222*UL:DPXK=DPX:DPX=DPP:IX=INT(XMI+.5):GOSUB 30818:DIM LYNE(IX):LYNE(IX)=255:LYNE(IX-1)=255:FOR M=0 TO 1:LPRINT CHR$(27)"K" CHR$(IX) CHR$(0);:FOR N=1 TO IX:LPRINT CHR$(LYNE(N));:NEXT N:GOSUB 30819:IF M=0 THEN LPRINT
  11. 30246 NEXT M:IL1=IX:IL2=IX:IR1=IX:IR2=IX:LPRINT" North":ERASE LYNE:DIM LYNE(444):FOR J=0 TO 55:FOR IH=0 TO 7:Y=J*8+IH:IF Y>444 THEN 30254 ELSE SQ=UL*SQR((444-Y)*Y):IL3=INT(XMI-SQ):IR3=INT(XMI+SQ):IF Y>222 THEN 30254 ELSE IF IL1<IL3+1 THEN IL1=IL3+1
  12. 30250 GOSUB 30819:FOR IX=IL3 TO IL1:LYNE(IX)=LYNE(IX)OR ILX(IH):NEXT IX:IL1=IL2:IL2=IL3:IF IR1>IR3-1 THEN IR1=IR3-1
  13. 30252 FOR IX=IR1 TO IR3:LYNE(IX)=LYNE(IX)OR ILX(IH):NEXT IX:GOSUB 30819:IR1=IR2:IR2=IR3:IF Y=222 THEN IL=ILX(IH)+ILX(IH+1):FOR IXX=IX+2 TO IX+14:LYNE(IXX)=IL:NEXT IXX:GOTO 30266 ELSE GOTO 30266
  14. 30254 IF Y>445 THEN 30266 ELSE IF IL1>IL3-1 THEN IL1=IL3-1
  15. 30256 FOR IX=IL1 TO IL3:LYNE(IX)=LYNE(IX)OR ILX(IH):NEXT IX:IL1=IL2:IL2=IL3:IF IR1<IR3+1 THEN IR1=IR3+1
  16. 30258 FOR IX=IR3 TO IR1:LYNE(IX)=LYNE(IX)OR ILX(IH):NEXT IX:IR1=IR2:IR2=IR3
  17. 30266 NEXT IH:FOR NJ=1 TO ACT(J,0):GOSUB 30819:N=ACT(J,NJ):IF N<0 THEN 30550 ELSE GET#1,N
  18. 30268 GM=VAL(MAG$):RA=VAL(RA1$)+VAL(RA2$)/60+VAL(RA3$)/3600:DEC=VAL(D1$)+VAL(D2$)/60+VAL(D3$)/3600:IF SD$="-"THEN DEC=-DEC
  19. 30270 M=INT(GM+.5):IF IPROP=1 THEN RA=RA+(VAL(PMR$)*YDI)/54000!:DEC=DEC+(VAL(PMD$)*YDI)/3600
  20. 30280 ON IPREC GOSUB 19900,20000:X=UL*ULY*X-LMAR+.5
  21. 30290 IF M=4 THEN IY=INT(ULY*Y+22.5) MOD 8:IX=INT(X):LYNE(IX)=LYNE(IX)OR ILX(IY):GOTO 30340
  22. 30300 IF M=3 THEN IY=INT(ULY*Y+22) MOD 8:IX=INT(X-.5):IL=ILX(IY)+ILX(IY+1):LYNE(IX)=LYNE(IX) OR IL:LYNE(IX+1)=LYNE(IX+1)OR IL:GOTO 30340
  23. 30310 IX=INT(X)-1:IY=INT(ULY*Y+21.5)MOD 8:IF M=2 THEN LYNE(IX)=LYNE(IX) OR ILX(IY)+ILX(IY+1)+ILX(IY+2):LYNE(IX-1)=LYNE(IX-1)OR ILX(IY+1):LYNE(IX+1)=LYNE(IX+1)OR ILX(IY+1):GOTO 30340
  24. 30320 IF M=1 THEN LYNE(IX)=LYNE(IX) OR ILX(IY)+ILX(IY+2):LYNE(IX-1)=LYNE(IX-1)OR ILX(IY+1):LYNE(IX+1)=LYNE(IX+1)OR ILX(IY+1):GOTO 30340
  25. 30330 IF M<=0 THEN IL=ILX(IY)+ILX(IY+2):LYNE(IX)=LYNE(IX)OR IL:LYNE(IX+2)=LYNE(IX+2) OR IL:LYNE(IX+1)=LYNE(IX+1)OR ILX(IY+1)
  26. 30340 NEXT NJ:LPRINT CHR$(27)"K"CHR$(188)CHR$(1);:FOR IN=1 TO 444:IF LYNE(IN)=0 THEN C=0:GOTO 30350 ELSE C=LYNE(IN)MOD 256:LYNE(IN)=(LYNE(IN)\256)*2
  27. 30350 LPRINT CHR$(C);:NEXT IN:IF J=27 THEN LPRINT"West";
  28. 30360 LPRINT:IF MS+MS7+MS6+MS5+MF>0 THEN GOSUB 30820
  29. 30370 GOSUB 30819:NEXT J:ERASE LYNE:DPX=DPXK
  30. 30380 DIM LYNE(480):LPRINT STRING$(80,45):IF IPL=0 THEN LPRINT CHR$(27)"A"CHR$(12):GOTO 30390 ELSE IX=16:IY=7:GOSUB 30640:IX=34:IY=7:GOSUB 30590
  31. 30390 GOSUB 30819:LPRINT TAB(8)"STELLAR MAGNITUDES"TAB(39):IF IPL=0 THEN 30410 ELSE LPRINT"PLANETS"TAB(56)"OTHER OBJECTS"
  32. 30400 LPRINT TAB(38):IS=30:GOSUB 30520:LPRINT TAB(55):IS=10:GOSUB 30520:LPRINT:GOSUB 30820
  33. 30410 GOSUB 30819:LPRINT TAB(8):IY=2:IX=402:IL=ILX(IY)+ILX(IY+2):LYNE(IX-1)=LYNE(IX-1)OR IL:LYNE(IX+1)=LYNE(IX+1)OR IL:LYNE(IX)=LYNE(IX)OR ILX(IY+1):IS=400:GOSUB 30520:LPRINT"0.499 or brighter"TAB(39):IF IPL=0 THEN 30440
  34. 30420 IS=30:GOSUB 30520:LPRINT"Mercury"TAB(61):IS=10:GOSUB 30520:LPRINT" Sun"TAB(56)
  35. 30430 IS=10:GOSUB 30520:LPRINT
  36. 30440 :GOSUB 30819:LPRINT TAB(8):IY=2:IX=402:LYNE(IX)=ILX(IY)+ILX(IY+2):LYNE(IX-1)=ILX(IY+1):LYNE(IX+1)=ILX(IY+1):IS=400:GOSUB 30520:LPRINT"0.5 to 1.499"TAB(38):IF IPL=0 THEN 30460
  37. 30450 IX=34:IY=0:GOSUB 30710:IS=30:GOSUB 30520:LPRINT"Venus"TAB(60):IX=16:IY=2:GOSUB 30570:IS=10:GOSUB 30520:IF FI=0 THEN LPRINT" Moon":LPRINT ELSE LPRINT USING" Moon, ###% full";FI:LPRINT
  38. 30460 GOSUB 30819:LPRINT TAB(8):IY=2:IX=402:LYNE(IX)=ILX(IY)+ILX(IY+1)+ILX(IY+2):LYNE(IX-1)=ILX(IY+1):LYNE(IX+1)=ILX(IY+1):IS=400:GOSUB 30520:LPRINT"1.5 to 2.499"TAB(38):IF IPL=0 THEN 30480
  39. 30470 IX=34:IY=1:GOSUB 30620:IS=30:GOSUB 30520:LPRINT"Mars"TAB(57):IX=15:IY=0:GOSUB 30810:IS=10:GOSUB 30520:LPRINT" Halley's Comet"
  40. 30480 GOSUB 30819:LPRINT TAB(8):IY=3:IX=402:IL=ILX(IY)+ILX(IY+1):LYNE(IX)=IL:LYNE(IX+1)=IL:IS=400:GOSUB 30520:LPRINT"2.5 to 3.499"TAB(37):IF IPL=0 THEN 30500 ELSE IX=34:IY=1:GOSUB 30730:IS=30:GOSUB 30520:LPRINT"Jupiter"
  41. 30490 LPRINT TAB(38):IX=34:IY=7:GOSUB 30770:IS=30:GOSUB 30520:GOSUB 30820
  42. 30500 GOSUB 30819:LPRINT TAB(8):IY=4:IS=400:IX=402:LYNE(IX)=ILX(IY):GOSUB 30520:LPRINT"3.5 to 4.499"TAB(37):IF IPL=0 THEN LPRINT:GOTO 30510 ELSE IS=30:GOSUB 30520:LPRINT"Saturn":LPRINT
  43. 30510 LPRINT:LPRINT STRING$(80,45)
  44. 30515 ERASE LYNE
  45. 30518 LPRINT CHR$(27)"@":ON ERROR GOTO 9000:GOSUB 30000:FOR I=0 TO KI:K$(I)="":NEXT I:KI=0:GOTO 4990
  46. 30520 LPRINT CHR$(27)"K"CHR$(12)CHR$(0);:FOR IN=IS TO IS+11:IF LYNE(IN)=0 THEN C=0:GOTO 30530 ELSE C=LYNE(IN)MOD 256:LYNE(IN)=(LYNE(IN)\256)*2
  47. 30530 LPRINT CHR$(C);:IF IP=1 THEN PRINT C;
  48. 30540 NEXT IN:RETURN
  49. 30550 KN=-N-1:RA=PL(KN,0):DEC=PL(KN,1):GOSUB 20000:IX=INT(UL*X*ULY-LMAR):ON -(N) GOSUB 30560,30580,30700,30630,30610,30720,30760,30800:GOTO 30340
  50. 30560 IY=INT(ULY*Y+20.5) MOD 8
  51. 30570 IL=ILX(IY)+ILX(IY+4):LYNE(IX-1)=LYNE(IX-1)OR IL:LYNE(IX+1)=LYNE(IX+1)OR IL:LYNE(IX)=LYNE(IX) OR IL +ILX(IY+2):IL=ILX(IY+1)+ILX(IY+2)+ILX(IY+3):LYNE(IX-2)=LYNE(IX-2) OR IL:LYNE(IX+2)=LYNE(IX+2)OR IL:RETURN
  52. 30580 IY=INT(ULY*Y+19.5)MOD 8
  53. 30590 IL=ILX(IY)+ILX(IY+2)+ILX(IY+3)+ILX(IY+4):LYNE(IX-2)=LYNE(IX-2)OR IL:LYNE(IX+2)=LYNE(IX+2)OR IL:IL=ILX(IY+1)+ILX(IY+5)+ILX(IY+7):LYNE(IX-1)=LYNE(IX-1)OR IL:LYNE(IX+1)=LYNE(IX+1)OR IL
  54. 30600 LYNE(IX)=LYNE(IX)OR ILX(IY+1)+ILX(IY+3)+ILX(IY+5)+ILX(IY+6)+ILX(IY+7):IF IY<>7 THEN LYNE(IX)=LYNE(IX)+ILX(IY+8):RETURN ELSE MF=IX:RETURN
  55. 30610 IY=INT(ULY*Y+18.5) MOD 8
  56. 30620 IL=ILX(IY)+ILX(IY+1):LYNE(IX+2)=LYNE(IX+2)OR IL:LYNE(IX+3)=LYNE(IX+3)OR IL:IY=IY+2:GOSUB 30570:RETURN
  57. 30630 IY=INT(ULY*Y+17.5)MOD 8
  58. 30640 LYNE(IX-5)=LYNE(IX-5)OR ILX(IY+5):LYNE(IX+5)=LYNE(IX+5)OR ILX(IY+5):IL=ILX(IY+1)+ILX(IY+5):LYNE(IX-4)=LYNE(IX-4)OR IL:LYNE(IX+4)=LYNE(IX+4)OR IL:IL=ILX(IY+5)+ILX(IY+2):LYNE(IX-3)=LYNE(IX-3) OR IL
  59. 30650 LYNE(IX+3)=LYNE(IX+3)OR IL:IL=ILX(IY+5)+ILX(IY+3)+ILX(IY+7):LYNE(IX-2)=LYNE(IX-2)OR IL:LYNE(IX+2)=LYNE(IX+2)OR IL:IL=ILX(IY+5)+ILX(IY+4)+ILX(IY+6):LYNE(IX-1)=LYNE(IX-1)OR IL:LYNE(IX+1)=LYNE(IX+1)OR IL
  60. 30660 LYNE(IX)=LYNE(IX)OR IL+ILX(IY+7)+ILX(IY+3)+ILX(IY+2)+ILX(IY+1)+ILX(IY)
  61. 30670 IF IY=7 THEN MS7=IX:RETURN ELSE LYNE(IX)=LYNE(IX)OR ILX(IY+8):LYNE(IX-3)=LYNE(IX-3)OR ILX(IY+8):LYNE(IX+3)=LYNE(IX+3)OR ILX(IY+8)
  62. 30680 IF IY=6 THEN MS6=IX:RETURN ELSE LYNE(IX)=LYNE(IX)OR ILX(IY+9):LYNE(IX-4)=LYNE(IX-4)OR ILX(IY+9):LYNE(IX+4)=LYNE(IX+4)OR ILX(IY+9)
  63. 30690 IF IY=5 THEN MS5=IX:RETURN ELSE LYNE(IX)=LYNE(IX) OR ILX(IY+10):RETURN
  64. 30700 IY=INT(ULY*Y+20.5) MOD 8
  65. 30710 GOSUB 30570:LYNE(IX)=LYNE(IX)OR ILX(IY+5)+ILX(IY+6)+ILX(IY+7):LYNE(IX+1)=LYNE(IX+1)OR ILX(IY+6):LYNE(IX-1)=LYNE(IX-1)OR ILX(IY+6):RETURN
  66. 30720 IY=INT(Y*ULY+19.5)MOD 8
  67. 30730 IL=ILX(IY)+ILX(IY+3)+ILX(IY+5):LYNE(IX)=LYNE(IX)OR IL:IL=IL+ILX(IY+1)+ILX(IY+2)+ILX(IY+4)+ILX(IY+6):LYNE(IX+2)=LYNE(IX+2)OR IL:LYNE(IX-2)=LYNE(IX-2)OR ILX(IY+1)+ILX(IY+5):LYNE(IX-1)=LYNE(IX-1)OR ILX(IY)+ILX(IY+4)+ILX(IY+5)
  68. 30740 LYNE(IX+2)=LYNE(IX+2)OR ILX(IY+3)+ILX(IY+4)
  69. 30750 LYNE(IX+1)=LYNE(IX+1)OR ILX(IY+1)+ILX(IY+2)+ILX(IY+5):LYNE(IX+3)=LYNE(IX+3)OR ILX(IY+5):RETURN
  70. 30760 IY=INT(Y*ULY+18.5)MOD 8
  71. 30770 IL=ILX(IY)+ILX(IY+2)+ILX(IY+4)+ILX(IY+6):LYNE(IX)=LYNE(IX)OR IL:LYNE(IX-1)=LYNE(IX-1)OR IL+ILX(IY+1)+ILX(IY+3)+ ILX(IY+5)+ILX(IY+7):LYNE(IX-2)=LYNE(IX-2)OR ILX(IY):LYNE(IX+1)=LYNE(IX+1)OR ILX(IY+2)+ ILX(IY+5)+ILX(IY+7)
  72. 30780 LYNE(IX+2)=LYNE(IX+2)OR ILX(IY+3)+ILX(IY+4)
  73. 30790 IF IY=7 THEN MS=IX:RETURN:ELSE LYNE(IX-1)=LYNE(IX-1)OR ILX(IY+8):LYNE(IX+2)=LYNE(IX+2)OR ILX(IY+8):RETURN
  74. 30800 IY=INT(Y*ULY+20.5)MOD 8
  75. 30810 IL=ILX(IY+2)+ILX(IY+3):LYNE(IX-1)=LYNE(IX-1)OR IL:LYNE(IX+2)=LYNE(IX+2)OR IL:IL=ILX(IY+1)+ILX(IY+4):LYNE(IX)=LYNE(IX)OR IL OR ILX(IY+2):LYNE(IX+1)=LYNE(IX+1) OR IL:LYNE(IX+3)=LYNE(IX+3)OR ILX(IY+1)OR ILX(IY+2):IL=ILX(IY)+ILX(IY+2)
  76. 30815 LYNE(IX+4)=LYNE(IX+4)OR IL:LYNE(IX+5)=LYNE(IX+5)OR IL:LYNE(IX+6)=LYNE(IX+6) OR IL:RETURN
  77. 30818 A$=INKEY$:IF A$=CHR$(27)THEN 30518 ELSE RETURN
  78. 30819 A$=INKEY$:IF A$=CHR$(27)THEN 30515 ELSE RETURN
  79. 30820 IF MF>0 THEN LYNE(MF)=LYNE(MF)OR 1:MF=0
  80. 30830 IF MS7>0 THEN IX=MS7:IY=-1:GOSUB 30670:MS7=0
  81. 30840 IF MS6>0 THEN IX=SM6:IY=-2:MS6=0:GOSUB 30680
  82. 30850 IF MS5>0 THEN IX=MS5:IY=-3:MS5=0:GOSUB 30690
  83. 30860 IF MS>0 THEN IX=MS:IY=-1:MS=0:GOSUB 30790
  84. 30870 RETURN
  85. 40000 '
  86.